﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

namespace Socket服务器
{
    /// <summary>
    /// UpdateLog.xaml 的交互逻辑
    /// </summary>
    public partial class UpdateLog : Window
    {
        public UpdateLog()
        {
            InitializeComponent();
            textBlock.Text = "";
            AddUpdateLog();
            
        }

        private void AddUpdateLog()
        {
            textBlock.AppendText(Head);
            //在此处添加新更细日志
            textBlock.AppendText(V5_0);
            textBlock.AppendText(V4_4_3);
            textBlock.AppendText (V4_4_2);
            textBlock.AppendText(V4_4);
            textBlock.AppendText(V4_3);
            textBlock.AppendText(V4_2);
            textBlock.AppendText(V4_1);
            textBlock.AppendText(V4_0);
            textBlock.AppendText(Group);
            textBlock.AppendText(Register);

        }

        string V5_0 = "2017年6月5日：把日志控件richtextbox更改为listbox，避免出现内存无限制增长，选中日志某个条目，该条目的内容被复制到剪贴板中\r\n\r\n";


        string Head = "                            TCP服务器更新日志\r\n";

        string Group = "********************************************\r\n组号的说明\r\n" +
            "设备编号第1位：1代表中心，2代表节点；第2-5位：代表组号；其余代表组内编号\r\n"+
            "转发规则：中心给节点发送数据时需要指定目标节点编号\r\n"+
            "节点给中心发送数据是透传模式，节点发送数据，所有相同组号下的中心都会收到数据\r\n\r\n";

        string Register = "*****************************************\r\n设备注册方法\r\n" +
            "透传协议节点注册，针对硬件设备：ID#PHONE#TYPE\r\n" +
            "ID:长度9-11位，字符范围0-9;PHONE:长度11位，手机号码;\r\n"+
            "TYPE:设备类型，0四信通用，1宏电通用，2控制中心，3庭院灌溉，4技卓设备，其他：未知通用类型\r\n"+
            "心跳包0x2b(字符‘+’)\r\n\r\n"+
            "Modbus类设备，采用如下JSON格式进行注册,发送数据，针对客户端\r\n"+
            "{\"Gprs_code\":\"10005000001\",\"Modbus_msg\":null,\"Phone\":\"13999999999\",\"user_key\":\"AABBCCDDEEFF\",\"Flag\":0,\"Freq\":10} "+
            "Gprs_code:要注册的GPRS编号或要发送的目标GPRS编号，8-11位，Modbus_msg：要转发到节点的数据，Phone：手机号，user_key：webapi获取的验证key，"+
            "Flag：0注册，1发送数据，2接收数据，Freq：自动采集时间，控制设备上没有作用\r\n\r\n"+

            "公司自行生产设备注册、控制，采用JSON格式进行注册、发送数据，针对客户端使用,见《TCP服务器接口文档》在软件安装根目录下\r\n\r\n" +

            "公司自行生产设备支持原生四信设备,灌溉软件采用此种协议进行数据传输,注册如下\r\n"+
            "99 30 33 23 31 38 38 38 38 38 38 38 38 38 38 00 0A 3C 84 C3 00\r\n"+
            "99 30 33 23:代表编号：23333099，31 38 38 38 38 38 38 38 38 38 38：手机号18888888888，00：固定值\r\n"+
            "0A 3C 84 C3:IPV4地址，10.60.132.195，00：固定值\r\n"+
            "中心到节点发送数据：目标GPRS编号+Data：32 33 33 33 33 30 39 39 18 28 ...58\r\n"+
            "32 33 33 33 33 30 39 39:目标GPRS编号，18 28 ...58要发送给节点的数据\r\n"+
            "节点到中心发送数据：透传，无需任何处理\r\n\r\n";


        string V4_0= "2017年3月1日\r\n1:程序崩溃可以自动复位\r\n\r\n";

        string V4_1 = "2017年3月9日\r\n1:增加对技卓的协议支持\r\n" +
            "注册节点->ID#PHONE#4:ID长度11位，PHONE手机号11位，4代表技卓设备\r\n" +
            "注册中心->JZ@ID@PHONE:JZ默认头，ID长度8或11位(为了兼容现有软件），PHONE手机号11位\r\n" +
            "中心发送数据到节点：节点编号+数据，节点编号：长度8或11，数据：必须以5A 5A 00 00开头（技卓协议）否则不转发\r\n"+
            "节点发送数据到中心：透明传输\r\n\r\n";

        string V4_2 = "2017年3月31日：修复技卓手机号码显示不正确BUG,增加直接操作协调器数据帧协议\r\n\r\n";

        string V4_3 = "2017年4月1日：增加使用GPRS模块发送JSON格式的模块，与使用TCP发送数据方式仅注册不一样，其他一致\r\n\r\n";

        string V4_4 = "2017年5月24日：增加标准modbus模块的不同设备通过接口进行数据解析，每种设备需要新建自己单独的解析协议\r\n" +
            "注册节点->MB#ID#PHONE:MB代表这是标准modbus设备，ID注册的GPRSid,PHONE手机号码\r\n"+
            "注册中心->{\"reg_id\":\"10040001\",\"phone\":\"13912345678\",\"devicetype\":3,\"user_key\":\"modbus\"} \r\n" +
            "reg_id:注册GPRSid,phone:注册手机号，devicetype：注册的设备ID，根据此ID来匹配解析数据协议，user_key：服务器验证字符串，用来检查连接权限\r\n"+
            "组号筛选功能增强，选择不同组时，日志中仅显示改组中出现的日志，其他组日志不会出现\r\n"+
            "设备列表与日志显示中间增加GridSplit可以调整设备列表与日志的占用页面比例\r\n\r\n";
        string V4_4_2 = "2017年5月31日：解决累计到计数上限时，不再接受设备的接入"+
                        ",端口记录由sqlite更改为xml记录\r\n\r\n";
        string V4_4_3 = "2017年6月2日：更改了配置文件、modbus配置文件，统一保存到config文件夹中，方便配置文件的迁移\r\n\r\n";
    }
}
